import { defaHttp, ApiRes } from "../index";
/**用户信息 */
export async function apiUserinfo(): Promise<void | Userinfo.Res> {
  const res = await defaHttp.post<ApiRes<Userinfo.Res>>("/user/me", undefined);
  if (res.code !== 200) return;
  return res.data;
}
/**用户信息 */
export namespace Userinfo {
  export interface Res {
    /**
     * 示例：0x4108e701f9ca42a80c66af56cf7067aca993240c
     */
    address: string;
    /**
     * 示例：1
     */
    id: number;
    /**
     * 剩余锁仓金额，示例：6561
     */
    last_locked: number;
    /**
     * 等级，示例：2
     */
    level: number;
    /**
     * 示例：0
     */
    parent_id: number;
    parent?: Parent;
    /**
     * 示例：-
     */
    register_task: RegisterTask;
    /**
     * 示例：qqt
     */
    that_wallet_name: string;
    set: Set;
  }
  export interface Set {
    lp_contract: string;
    slip_point: number;
  }
  export interface Parent {
    address: string;
    id: number;
  }

  /**
   * 示例：-
   */
  export interface RegisterTask {
    /**
     * 示例：1
     */
    id: number;
    /**
     * 邀请好友购买WKC币次数
     */
    invite_times: number;
    /**
     * 是否购买：1：购买了WKC；0：未完成购买WKC任务
     */
    is_buy: number;
    /**
     * 非机器检测：1：已认证；0：待检查认证
     */
    is_robot: number;
    /**
     * 示例：8748.0000
     */
    locked: string;
    /**
     * 示例：1
     */
    user_id: number;
  }
}
/**绑定邀请人 */
export async function apiBindParent(data: BindParent.Req): Promise<boolean> {
  const res = await defaHttp.post<ApiRes<void>>("/user/parent", data, {
    mode: { failMessage: true, successMessage: true },
  });
  if (res.code !== 200) return false;
  return true;
}
/**绑定邀请人 */
export namespace BindParent {
  export interface Req {
    address: string;
  }
}
/**我的任务比例信息 */
export async function apiMyTaskRatio(): Promise<void | MyTaskRatio.Res> {
  const res = await defaHttp.post<ApiRes<MyTaskRatio.Res>>(
    "/register/config",
    undefined
  );
  if (res.code !== 200) return;
  return res.data;
}
/**我的任务比例信息 */
export namespace MyTaskRatio {
  export interface Res {
    /**
     * 购买WKC解锁的比例，示例：20
     */
    buy_rate: string;
    /**
     * 第一次购买WKC最低需要多少USDT
     */
    buy_usdt: string;
    /**
     * 邀请一位好友解锁比例，示例：30
     */
    recommend_first: string;
    /**
     * 邀请两位好友解锁比例，示例：50
     */
    recommend_second: string;
  }
}
